100 CALL CLEAR :: CALL SCREEN(2) :: FOR I=2 TO 10 :: CALL COLOR(I,12,2) :: NEXT I
105 DISPLAY AT(12,4):"*** TORRE DI HANOI ***" :: FOR I=1 TO 400 :: NEXT I :: CALL CHARSET
110 FOR I=1 TO 300 :: NEXT I
180 CALL SCREEN(16)
190 CALL CLEAR
200 DIM PEG(3),TOP(3),PC(7)
210 CALL COLOR(7,1,1)
220 CALL COLOR(8,2,2)
230 READ PEG(1),PEG(2),PEG(3),TOP(1),TOP(2),TOP(3)
240 FOR COL=9 TO 12
250 READ A,B
260 CALL COLOR(COL,A,B)
270 NEXT COL
280 READ PC(1),PC(2),PC(3),PC(4),PC(5),PC(6),PC(7)
290 FOR X=96 TO 120 STEP 8
300 CALL CHAR(X,"00")
310 CALL CHAR(X+1,"FFFFFFFFFFFFFFFF")
320 NEXT X
330 CALL HCHAR(8,3,45,13)
340 CALL HCHAR(16,10,45,13)
350 CALL HCHAR(24,17,45,13)
360 FOR X=1 TO 8
370 CALL COLOR(X,2,1)
380 NEXT X
390 CALL HCHAR(8,9,49)
400 CALL HCHAR(16,16,50)
410 CALL HCHAR(24,23,51)
420 FOR X=1 TO 7
430 CALL HCHAR(X,10-X,PC(X),X*2-1)
440 NEXT X
450 CALL KEY(3,FROM,STATUS)
460 IF STATUS=0 THEN 450
465 IF FROM<49 OR FROM>51 THEN CALL SOUND(50,-6,0) :: GOTO 450
470 CALL KEY(3,DUMMY,STATUS)
480 IF STATUS=-1 THEN 470
490 FROM=FROM-48
495 CALL HCHAR(6+(FROM-1)*8,3+(FROM-1)*7,42)
500 CALL SOUND(100,110,3)
510 CALL KEY(3,TOO,STATUS)
520 IF STATUS=0 THEN 510
524 IF TOO<49 OR TOO>51 THEN CALL SOUND(50,-6,0) :: GOTO 510
525 CALL HCHAR(6+(FROM-1)*8,3+(FROM-1)*7,32)
530 CALL KEY(3,DUMMY,STATUS)
540 IF STATUS=-1 THEN 530
550 TOO=TOO-48
560 CALL SOUND(100,262,2)
561 IF FROM=TOO THEN 450
562 PP=PP+1
564 DISPLAY AT(1,16)BEEP :"MOSSA "&STR$(PP)
570 IF(FROM<1)+(FROM>3)+(TOO>3)+(TOO<1)THEN 450
580 IF(PEG(FROM)=0)+((PEG(TOO)<>0)*(PEG(FROM)>PEG(TOO)))THEN 450
590 SIZE=INT(PEG(FROM))
600 TOP(TOO)=TOP(TOO)-1
610 CALL HCHAR(TOP(FROM),((FROM-1)*7+10)-SIZE,32,SIZE*2-1)
620 TOP(FROM)=TOP(FROM)+1
630 CALL HCHAR(TOP(TOO),((TOO-1)*7+10)-SIZE,PC(SIZE),SIZE*2-1)
640 PEG(FROM)=10*(PEG(FROM)-SIZE)
650 PEG(TOO)=.1*PEG(TOO)+SIZE
660 IF(PEG(2)=1.234567)+(PEG(3)=1.234567)THEN 680
670 GOTO 450
680 A$="HAI VINTO!!"
681 DD=500 :: CALL SOUND(DD*1,262,0,523,0)
682 CALL SOUND(DD*1,233,0,466,0)
683 CALL SOUND(DD*0.5,262,0,523,0)
684 CALL SOUND(DD*0.5,233,0,466,0)
685 CALL SOUND(DD*1,196,0,392,0)
686 CALL SOUND(DD*1,196,0,392,0)
687 CALL SOUND(DD*1,175,0,349,0)
688 CALL SOUND(DD*2,196,0,392,0)
690 FOR X=1 TO 9
700 CALL HCHAR(20,3+X,ASC(SEG$(A$,X,1)))
710 NEXT X
720 CALL KEY(0,K,S)
730 IF S=0 THEN 720
740 GOTO 760
750 DATA 1.234567,0,0,1,16,24,6,4,12,10,8,7,1,14,96,97,104,105,112,113,120
760 END
